package pt.compflow.interfaces;

import java.util.List;

import pt.compflow.Context;
import pt.compflow.storage.TripleStoreConnection;
import pt.compflow.tools.Copyable;

public interface IOInterface extends Copyable<IOInterface> {

	public String getInterfaceClassUri();
	public void setInterfaceClassUri(String interfaceClass);

	public String getInterfaceUri();
	public void setInterfaceUri(String interfaceUri);
	
	/**
	 * Add/remove listeners for the state of the Assignments given to Workers 
	 * through their Interfaces 
	 */
	public boolean addInterfaceListener(InterfaceListener l);
	public boolean removeInterfaceListener(InterfaceListener l);
	public void setInterfaceListeners(List<InterfaceListener> listeners);
	
	public void start(Context context, TripleStoreConnection store);
	public void stop(Context context, TripleStoreConnection store);

}
